user = {}

user.currentPage = 0;
user.pageSize = 100;

user.list = function(){
    main.init();
    user.currentPage = 0;
    user.pageSize = 100;
    $('#content').html(fly.template('http://naima.vn/user/main.html',{
        locations: user.getLocations(),
        groups: user.getGroups()
    }));
    $('#sl-page-size li[num]').click(function(){
        user.currentPage = 0;
        user.pageSize = $(this).attr('num');
        user.load();
    });
    user.load();
}

user.search = function(){
    user.currentPage = 0;
    user.load();
}
    
user.page = function(page){
    user.currentPage = page;
    user.load();
}

user.load = function(){
    fly.ajax({
        service:'/user/list',
        data:{
            currentPage: user.currentPage,
            pageSize: user.pageSize,
            groupId: $('#sl-search-groupId').val(),
            locationId: $('#sl-search-locationId').val(),
            status: $('#sl-search-status').val(),
            id: $('#txt-search-id').val(),
            username: $('#txt-search-username').val()
        },
        success: function(result){
            if(result.status){
                //Hiển thị danh sách
                $('#tbl-list').html(fly.template('http://naima.vn/user/list.html', {
                    data:result.data.data
                }));
                //Hiển thị link phân trang
                $('#paging').html(fly.template('http://naima.vn/component/paging.html', {
                    data:result.data,
                    action: 'user'
                }));
                //Hiển thị tổng số bản ghi
                $('#lbl-datacount').text(result.data.itemCount);
                //Link thay đổi số bản ghi trên trang
                $('#sl-page-size li[num]').removeClass('totalviewactive');
                $('#sl-page-size li[num='+result.data.pageSize+']').addClass('totalviewactive');
                
                $('#list-checkall').click(function(){
                    $('input[type=checkbox][for]').attr('checked', $('#list-checkall').is(':checked'));
                });
            }
            else{
                popup.msg(result.message);
            }
        }
    });
}

user.create = function(){
    popup.open('popup-user-form', 'Thêm người dùng mới', fly.template('http://naima.vn/user/form.html', {
        data:null,
        locations: user.getLocations(),
        groups: user.getGroups()
    }), [

    {
        title:'Thêm mới', 
        fn:function(){
            fly.submit({
                id:'user-form',
                service: '/user/create',
                success: function(result){
                    popup.msg(result.message);
                    if($(location).attr("hash").replace('#', '') == 'user/list'){
                        user.load();
                    }
                    popup.close('popup-user-form');
                }
            });
        }
    },
    {
        title:'Hủy bỏ',
        fn:function(){
            popup.close('popup-user-form');
        }
    }
    ]);
}

user.edit = function(id){
    fly.ajax({
        service:'/user/get',
        data:{
            id:id
        },
        success: function(result){
            popup.open('popup-user-form', 'Sửa người dùng', fly.template('http://naima.vn/user/form.html', {
                data:result.data,
                locations: user.getLocations(),
                groups: user.getGroups()
            }), [

            {
                title:'Sửa', 
                fn:function(){
                    fly.submit({
                        id:'user-form',
                        service: '/user/edit',
                        success: function(rs){
                            popup.msg(rs.message);
                            if($(location).attr("hash").replace('#', '') == 'user/list'){
                                user.load();
                            }
                            popup.close('popup-user-form');
                        }
                    });
                }
            },
            {
                title:'Hủy bỏ',
                fn:function(){
                    popup.close('popup-user-form');
                }
            }
            ]);
            $('#sl-gender').val(result.data.gender);
            $('#sl-location').val(result.data.locationId);
            $('#sl-group').val(result.data.groupId);
        }
    });
}

user.del = function(id){
    popup.confirm("Bạn có chắc chắn muốn xóa người dùng này?", function(){
        fly.ajax({
            service: '/user/delete',
            data:{
                id:id
            },
            success: function(result){
                popup.msg(result.message);
                if($(location).attr("hash").replace('#', '') == 'user/list'){
                    user.load();
                }
            }
        });
    });
}

user.delAll = function(){
    var data = Array();
    var i = 0;
    $('input[type=checkbox][for]').each(function(){
        if($(this).is(':checked')){
            data[i] = parseInt($(this).attr('for'));
            i++;
        }
    });
    if(data.length <= 0){
        popup.msg("Bạn chưa chọn nhóm để xóa.");
        return;
    }
    popup.confirm("Bạn có chắc chắn muốn xóa những người dùng này?", function(){
        fly.ajax({
            service: '/user/deleteall',
            data:{
                ids:JSON.stringify(data)
            },
            success: function(result){
                popup.msg(result.message);
                if($(location).attr("hash").replace('#', '') == 'user/list'){
                    user.load();
                }
            }
        });
    });
}

user.getLocation = function(id){
    var locations = user.getLocations();
    for(i=0; i<locations.length; i++){
        if(locations[i].id == id){
            return locations[i].name;
        }
    }
    return 'Không rõ';
}

user.getLocations = function(){
    if(!user.locations){
        fly.ajax({
            service: '/user/getLocations',
            success: function(result){
                user.locations = result.data;
            },
            async: false,
            loading: false
        });
    }
    return user.locations;
}

user.getGroups = function(){
    if(!user.groups){
        fly.ajax({
            service: '/user/getGroups',
            success: function(result){
                user.groups = result.data;
            },
            async: false,
            loading: false
        });
    }
    return user.groups;
}